#include "button.h"
#include <QStyle>
Button::Button(QWidget *parent)
    : QPushButton(parent)
    , m_isPlaying(false)
{
    // 设置按钮样式
    setFixedSize(50, 50); // 设置固定大小
    setCheckable(false);  // 不需要保持选中状态

    // 设置默认图标（可以使用系统图标或自定义图标）
    m_playIcon = QIcon::fromTheme("media-playback-start",
                                 QIcon(":/开始")); // 备用图标路径
    m_pauseIcon = QIcon::fromTheme("media-playback-pause",
                                  QIcon(":/停止")); // 备用图标路径

    // 初始状态为播放图标
    setIcon(m_playIcon);

    // 连接点击信号
    connect(this, &QPushButton::clicked, this, &Button::onButtonClicked);
}

void Button::setPlayIcon(const QIcon &icon)
{
    m_playIcon = icon;
    if (!m_isPlaying) {
        setIcon(m_playIcon);
    }
}

void Button::setPauseIcon(const QIcon &icon)
{
    m_pauseIcon = icon;
    if (m_isPlaying) {
        setIcon(m_pauseIcon);
    }
}

void Button::setPlaying(bool playing)
{
    if (m_isPlaying != playing) {
        m_isPlaying = playing;
        setIcon(m_isPlaying ? m_pauseIcon : m_playIcon);
        emit playStateChanged(m_isPlaying);
    }
}

bool Button::isPlaying() const
{
    return m_isPlaying;
}

void Button::onButtonClicked()
{
    // 切换状态
    m_isPlaying = !m_isPlaying;

    // 更新图标
    setIcon(m_isPlaying ? m_pauseIcon : m_playIcon);

    // 发出状态改变信号
    emit playStateChanged(m_isPlaying);
}
